home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / unix / volume7 / xlisp.patch < prev    next >
Encoding:
Internet Message Format  |  1986-11-30  |  1.9 KB

  1. Subject:  v07i026:  Patch to Xlisp1.6 for Pyramid machines
  2. Newsgroups: mod.sources
  3. Approved: mirror!rs
  4.  
  5. Submitted by: john@monu1.oz (John Carey)
  6. Mod.sources: Volume 7, Issue 26
  7. Archive-name: xlisp.patch
  8.  
  9. Mod.sources: Volume 7, Issue 25
  10. Archive-name: xlisp.patch
  11.  
  12. I have modified xlsave in xleval.c so it works on a Pyramid 90x
  13. using <varargs.h>.
  14.  
  15.                     John Carey.
  16.                     john%monu1.oz@seismo.ARPA
  17.     -------------------------CUT HERE-------------------------
  18. #!/bin/sh
  19. # This is a shell archive.  Remove anything before this line,
  20. # then unpack it by saving it in a file and typing "sh file".
  21.  
  22. # Exit status; set to 1 on "wc" errors or if would overwrite.
  23. STATUS=0
  24. # Contents:  xlsave.c
  25.  
  26. echo x - xlsave.c
  27. if test -f xlsave.c ; then
  28.     echo xlsave.c exists, putting output in $$xlsave.c
  29.     OUT=$$xlsave.c
  30.     STATUS=1
  31. else
  32.     OUT=xlsave.c
  33. fi
  34. sed 's/^XX//' > $OUT <<'@//E*O*F xlsave.c//'
  35. XX/* xlsave - save nodes on the stack */
  36. XX#include    <varargs.h>
  37. XXNODE ***xlsave(va_alist)
  38. XX  va_dcl
  39. XX{
  40. XX    va_list    pvar;
  41. XX    NODE ***oldstk,**nptr;
  42.  
  43. XX    /* save the old stack pointer */
  44. XX    oldstk = xlstack;
  45.  
  46. XX    /* save each node pointer */
  47. XX    va_start(pvar);
  48. XX    for (nptr = va_arg(pvar, NODE **);
  49. XX    nptr != (NODE **) NULL; nptr = va_arg(pvar, NODE **)) {
  50. XX    if (xlstack <= xlstkbase)
  51. XX        xlabort("evaluation stack overflow");
  52. XX    *--xlstack = nptr;
  53. XX    *nptr = NIL;
  54. XX    }
  55. XX    va_end(pvar);
  56.  
  57. XX    /* return the old stack pointer */
  58. XX    return (oldstk);
  59. XX}
  60. @//E*O*F xlsave.c//
  61. chmod u=rw,g=rw,o=rw $OUT
  62.  
  63. echo Inspecting for damage in transit...
  64. temp=/tmp/sharin$$; dtemp=/tmp/sharout$$
  65. trap "rm -f $temp $dtemp; exit" 0 1 2 3 15
  66. cat > $temp <<\!!!
  67.       25      78     542 xlsave.c
  68. !!!
  69. wc  xlsave.c | sed 's=[^ ]*/==' | diff -b $temp - >$dtemp
  70. if test -s $dtemp ; then
  71.     echo "Ouch [diff of wc output]:"
  72.     cat $dtemp
  73.     STATUS=1
  74. elif test $STATUS = 0 ; then
  75.     echo "No problems found."
  76. else
  77.     echo "WARNING -- PROBLEMS WERE FOUND..."
  78. fi
  79. exit $STATUS
  80.